class GraphKernel
{
public:
    virtual double Evaluate(const Graph &g0, const Graph &g1) const = 0;
};

class RootedGraphKernel;
class GraphKernelAllRootPairs : public GraphKernel
{
public:
    void SetParameters(RootedGraphKernel &rootedGraphKernel);
    double Evaluate(const Graph &g0, const Graph &g1) const;

private:
    RootedGraphKernel *_rootedGraphKernel;
};